﻿using DataServer.CommonLib.Models.DataBase;
using Swimj.CommonLib.Base;

namespace Config.RazorLib.Services
{
    public interface IDatabaseService
    {
        // [Get("/api/v1/databases")]
        Task<PaginatedResult<DatabaseInfoResponseDto>?> QueryDatabasesByPage(DatabaseSearchRequestDto searchRequestDto);

        // [Get("/api/v1/databases")]
        Task<Result<IList<DatabaseInfoResponseDto>>?> QueryDatabases(DatabaseSearchRequestDto searchRequestDto);

        // [Put("/api/v1/databases/{id}")]
        Task<Result<DatabaseInfoResponseDto>?> UpdateDatabase(Guid id, DatabaseEditRequestDto editRequestDto);
        
        // [Post("/api/v1/databases")]
        Task<Result<DatabaseInfoResponseDto>?> CreateDatabase(DatabaseEditRequestDto editRequestDto);
        
        // [Get("/api/v1/databases/{id}")]
        Task<Result<DatabaseInfoResponseDto>?> GetDatabase(Guid id);
    }
}